package com.qnbc.mystery.pojo.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qnbc.mystery.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;


/**
 * 订单管理对象 food_order
 *
 * @author guzj
 * @date 2024-01-24
 */
@Getter
@Setter
@Data
@ApiModel(value = "订单管理对象", description = "订单管理对象")
public class FoodOrder implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "excel-序号")
    @TableField(exist = false)
    @Excel(name = "序号", orderNum = "0", format = "isAddIndex")
    private Integer index = 1;

    /**
     * 主键
     */
    @ApiModelProperty("id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;


    /**
     * 订单号
     */
    @ApiModelProperty("订单号")
    @Excel(name = "订单号")
    private String orderNo;

    /**
     * 总价
     */
    @ApiModelProperty("总价")
    @Excel(name = "总价")
    private BigDecimal totalprice;

    /**
     * 收货地址
     */
    @Excel(name = "收货地址")
    private String address;

    /**
     * 收货人
     */
    @Excel(name = "收货人")
    private String consignee;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    private String telnumber;

    /**
     * 阿里单号
     */
    @Excel(name = "阿里单号")
    private String alipayTraceNo;

    /**
     * 订单超时日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单超时日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outTimeDate;

    /**
     * 订单支付日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单支付日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paydate;

    /**
     * 订单状态 1 未支付  2 待发货  4 待收货 5 确认收货 6 订单结束 7 申请售后  8 售后中 9 售后完成  10 退货中
     */
    @Excel(name = "订单状态 1 未支付  2 待发货  4 待收货 5 确认收货 6 订单结束 7 申请售后  8 售后中 9 售后完成  10 退货中")
    private int status;

    /**
     * 桌号
     */
    @Excel(name = "桌号")
    private Long tableNum;

    /**
     * 就餐人数
     */
    @Excel(name = "就餐人数")
    private Long eatNum;

    /**
     * 支付方式
     */
    @Excel(name = "支付方式")
    private Long payType;
    /**
     * 支付方式
     */
    @Excel(name = "支付方式 1 2盲盒")
    private String  orderType;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String message;

    /**
     * 骑手id
     */
    @Excel(name = "骑手id")
    private Long qishouId;
    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String createdBy;

    /**
     * 更新人
     */
    @Excel(name = "更新人")
    private String updatedBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;


    /**
     * 市编码
     */
    @Excel(name = "市编码")
    private String cityCode;

    /**
     * 市名称
     */
    @Excel(name = "市名称")
    private String cityName;

    /**
     * 省编码
     */
    @Excel(name = "省编码")
    private String provinceCode;

    /**
     * 省名称
     */
    @Excel(name = "省名称")
    private String provinceName;


    //物流单号
    private String trackingNumber;
    /**
     * 分页大小
     */
    @TableField(exist = false)
    @ApiModelProperty("分页大小")
    private Integer pageSize;

    /**
     * 当前页面从1开始
     */
    @TableField(exist = false)
    @ApiModelProperty("当前页面从1开始")
    private Integer pageNum;
    //子订单详情
    @TableField(exist = false)
    List<OrderDetail> goods;

    //购物车
    @TableField(exist = false)
    private Cart cart;


}
